Presenting Notifications to a User of a Computing Device

ABSTRACT

Presenting notifications to one or more computing devices of a user is provided. A notification is received addressed to a client service running on a computing device of one or more computing devices of the user. The notification is classified based on content associated with the notification. User context of the user is determined based on user-related information received from the one or more computing devices. The notification is presented to one or more of the one or more computing devices of the user according to one or more modes of presentation, based on classifying the notification and determining the user context.

FIELD

Certain embodiments of the invention relate to the field of digitalcomputer systems and methods. More specifically, certain embodiments ofthe invention relate presenting notifications to a user of a computingdevice, and the methods therein.

DESCRIPTION OF RELATED ART

Every day we receive several notifications (mails, SMS, messages, etc.)on a variety of devices (desktop PCs, mobiles, smart TV, tablets, etc.).These notifications could be an issue when the time, the sender of thenotification, the receiving device and/or the content of thenotification are inappropriate to the receiving context of the userdevice. For example, during a meeting in which a user is making apresentation with a laptop computer, the laptop may receive aconfidential notification addressed to the user, and may attempt tonotify the user, interrupt the presentation of the user and/or evendisplay the confidential notification or its contents to the audience.In another example, during watching of a cartoon with one's son ordaughter on a smart TV, the smart TV may receive, notify, and/or displaythe notification corresponding to a not-safe-message or even thecontents of the not-safe-message.

SUMMARY

According to one illustrative embodiment, a method for presentingnotifications to one or more computing devices of a user is provided. Anotification is received addressed to a client service running on acomputing device of one or more computing devices of the user. Thenotification is classified based on content associated with thenotification. User context of the user is determined based onuser-related information received from one or more computing devices.The notification is presented to one or more of the one or morecomputing devices of the user according to one or more modes ofpresentation, based on the classification of the notification and thedetermining of the user context of the user. According to otherillustrative embodiments, a system and computer program product forpresenting notifications to one or more computing devices of a user areprovided.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram of a network, according to an exemplaryembodiment of the invention;

FIG. 2 is a schematic diagram of the notification system illustrated inFIG. 1, according to an exemplary embodiment of the invention; and

FIG. 3 is a flowchart of a method for presenting notifications to one ormore computing devices of a user, according to an exemplary embodimentof the invention.

DETAILED DESCRIPTION

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

Illustrative embodiments of presenting a notification to one or morecomputing devices according to one or more modes of presentation isbased on a classification of a received notification and a determinationof user context, combined with the ability of the system to adapt thenotification to standards set under different communication protocolsthat govern different client services running on the different computingdevices. Moreover, the system has the capability to learn from acumulation of past user-associated activity (i.e., past reactions of auser, or past choices a user may make, or measured biometric parametersof a user that may express user sentiment, all in conjunction with pastpresented notifications) in conjunction with classifications of the pastpresented notifications, and update the user context. As a result, usercontext includes past user history regarding, for example, pastreactions of the user to presented notifications, past choices the usermakes concerning presented notifications, measured biometric parametersof the user indicating user sentiment concerning presentednotifications, and the like.

A computing device may include, but are not limited to, a mobile device,such as a smart phone, a notepad, a personal digital assistant, acomputer, such as laptop or a distributed computer system, and a pager.

A notification may comprise, but is not limited to, an e-mail, a textmessage, such as an SMS or MMS, a chat message, a tweet, a Skypemessage, or any type of visual or audio message.

User context of the user is based upon user-related information, wherethe user-related information may comprise any information related to auser of a computing device.

A biometric parameter may comprise, but is not limited to, heart rate,blood pressure, body surface temperature, and pupil dilation, and mayinclude any type of parameter that is an indicative of a biologicalreaction of a user upon seeing or hearing a notification presented on acomputing device

A mode of presentation may comprise an audio mode, a visual mode, or acombination of audio and visual modes, and may further comprise any typeof technique of alerting a user (i.e., via a mode of alerting) to anotification received from the notification system. For example, thevisual mode may include, but is not limited to, notifications formattedas text messages, e-mail messages, chat messages, Skype messages,tweets, and pictures, with modes of alerting comprising, for example,but not limited to, alarm modes and vibration modes.

Presenting notifications to one or more computing devices of a user maycomprise receiving a notification addressed to a client service runningon a computing device of the one or more computing devices of the user,classifying the notification based on content associated with thenotification, determining user context of the user based on user-relatedinformation received from the one or more computing devices, andpresenting the notification to one or more of the one or more computingdevices of the user according to one or more modes of presentation,based on the classification of the notification and the determined usercontext of the user.

The above features of illustrative embodiments may have the advantagethat the most appropriate computing device of one or more computingdevices associated with a user are selected, and the most appropriatemode of presentation of the selected computing device is selected, forpresenting a notification to a user. Furthermore, the above features ofillustrative embodiments may have the advantage that the selection ofthe most appropriate computing device and the most appropriate mode ofpresentation are based on a classification of the notification and adetermined user context of the user.

According to one embodiment, user-related information comprises areaction of the user to at least one previously presented notification,and according to another embodiment, user-related information comprisesan interaction of the user with one or more user interfaces of the oneor more computing devices and calendar information related to the user.These features may have the advantage that selecting the mostappropriate computing device of one or more computing devices associatedwith a user, and the most appropriate mode of presentation of theselected computing, for presenting a notification to a user, is based onhow a user reacts to previously presented messages, and what the user isdoing, respectively.

According to one embodiment, presenting the notification to the one ormore of the one or more computing devices of the user according to theone or more modes of presentation is further based on one or morecharacteristics of the one or more of the one or more computing devices.These features may have the advantage that selecting the mostappropriate computing device of one or more computing devices associatedwith a user, and the most appropriate mode of presentation of theselected computing, for presenting a notification to a user, is based oncharacteristics of the one or more of the one or more computing devices,in order to narrow the choices of selecting to only those computingdevices that include the most appropriate characteristics for presentingthe notification.

According to one embodiment, one or more client services are running onthe one or more of the one or more computing devices being associatedwith different communication protocols than a communication protocolassociated with the client service running on the computing device, andthe method further comprises changing the communication protocol of thenotification before presenting the notification to the one or more ofthe one or more computing devices. These features may have the advantagethat the choices of computing devices to which a notification may bepresented are broadened.

According to one embodiment, the determined user context is stored, andthe determined content is updated based on recently-receiveduser-related information from the one or more computing devices and thestored determined user context. These features may have the advantagethat the notification system is enabled to learn, or in other words, betrained, so as to make more appropriate choices of computing devices andmodes of presentation for presenting future notifications.

FIG. 1 is a schematic diagram of a network 100, according to anexemplary embodiment of the invention. In one embodiment of theinvention, the network 100 may be a computer network, and may comprise anotification system 105, one or more computing devices 110, and a server115. The one or more computing devices 110 may comprise any type ofelectronic device configured to receive any type of electronicnotification (also referred to as a notification) via the network 100.For example, the computing devices 110 may include, but are not limitedto, a mobile, a notepad, a personal digital assistant, a computer, suchas laptop or a distributed computer system, and a pager.

The server 115 may provide one source of notifications for reception bythe one or more computing devices 110 and/or the notification system105. Furthermore, in another embodiment of the invention, thenotification system 105, as will be discussed more fully below, mayprocess and present notifications to the one or more computing devices110.

In one embodiment, content of a notification may comprise a header and abody, where the header may comprise address information of the senderand the receiver (i.e., one or more of the computing devices 110), andthe body may comprise message information, in the form of, for example,but not limited to, the body of an e-mail, a text message, such as anSMS or MMS, a chat message, a tweet, a Skype message, or any type ofvisual or audio message. However, the scope of the inventioncontemplates a notification governed under any communication protocoland standard.

A notification may not only comprise a header including addressinformation and/or a body including message information, but may alsocomprise other content information, such as, but not limited to, subjectinformation associated with the message information of the body, or atime that the notification was sent or a location from where thenotification was sent. In one embodiment, and dependent upon the type ofcomputing device that receives a notification from the notificationsystem 105, the computing device 110 may display, or in otherembodiments play, the address information of the header and/or themessage information of the body and/or the other content information.

In one embodiment of the invention, the notification system 105 isconfigured to communicate with the computing devices 110 and optionallywith the server 115 over the network 100. Communication over networks,such as network 100, is well known in the art, and includes wireless andwired communication, or any type of combination of wireless and wired.For example, wired communication may include communication mediumsand/or standards such as cable, POTS, optical, Ethernet, etc., andwireless communication may include communication mediums and/orstandards such as, for example, RF, WiFi, all IEEE protocols, Bluetooth,IR, near-field communications, and satellite communications.

As will be seen in more detail below in conjunction with FIGS. 2 and 3,the notification system 105 is configured to receive notifications fromeither the server 115 or one or more of the computing device 110. In oneembodiment of the invention, the one or more computing devices 110 areconfigured, via for example, plug-ins, to forward or route anynotification, received for example from the server 115, to thenotification system 105 for further processing. In another embodiment,one or more components of the notification system 105 are configured torun, for example, as a type of filter on top of client services (notshown) running on one or more computing devices 110 for interceptingnotifications before they are received by the client services. Aftersuch processing, the notification system 105 may present the processednotification to one or more selected computing devices of the one ormore computing devices 110.

FIG. 2 is a schematic diagram of the notification system 105 illustratedin FIG. 1, according to an exemplary embodiment of the invention. Thenotification system 105 comprises a notification analyzer 205, a usercontext analyzer 210, and a decision manager 215.

In one embodiment on the invention, the notification analyzer 205 isconfigured to receive a notification from a client service (not shown)running on a computing device, for example computing device 110(1) ofthe one or more computing devices 110. The one or more computing devices110 may be associated with a given user. For example, a given user mayhave log-on privileges to the one or more computing devices 110 and/oraccess to client services running on the one or more computing devices110.

In an exemplary embodiment, a client service running on the computingdevice 110(1) is a client electronic mail (i.e., e-mail) service. Theclient e-mail service may be configured, via a plug-in, for example, toreceive a notification from the server 115 running, for example, ane-mail server program, and then transmit (e.g., route) the notificationto the notification analyzer 205. In another embodiment, the cliente-mail service may be configured, via a plug-in, for example, to storenotifications received from the server 115, and the notificationanalyzer 205 may be configured to monitor the client services running onthe one or more computing devices 110, such as the client e-mail servicerunning on the computing device 110(1), for any stored notifications.Upon detection of stored notifications, the notification analyzer 205may instruct the computing device 110(1) to transmit the storednotifications to the notification analyzer 205. In another embodiment ofthe invention, a user of the computing device 110(1) is not notified ofthe initial reception, or storage, of the notification from the server115.

In yet another embodiment, the notification analyzer 205 may comprise atype of filter that is configured to run on top of the computing device110(1) (e.g., on top of a client service running on the computing device110(1)). The notification analyzer 205 may be further configured tointercept notifications sent from the server (e.g., sent fromcorresponding client program(s) running on the server) and addressed tothe computing device and/or client service(s) running on the computingdevice, before they are received by the client service(s).

The scope of the invention is not limited to computing devices andservers running programs associated with e-mail services, but covers anytype of notification services, such as, but not limited to, chatservices, messaging services, audio services, video services, internettelephony services, or any combination of text, audio and/or videoservices, such as Skype, for example.

In another embodiment of the invention, the notification analyzer 205may, after receiving the notification, classify the notification basedon content associated with the notification. For example, in oneembodiment, the notification analyzer 205 classifies the notificationbased on address information associated with the notification, such assender and/or receiver addresses. The receiver address may be theaddress associated with a given client service running on a computingdevice 110. In another embodiment, the notification analyzer 205classifies the notification based on message information of the receivednotification. Message information may be derived, for example, from ananalysis of the semantic content of the notification, and may result ina detection of key words or phrases, or meaningful patterns, orcorrelations between patterns, or a detection of the urgency of thenotification. In one embodiment, the notification analyzer 205 mayinclude a text mining computer program, known by those of skill in theart to be available from many commercial and open source companies.

In one embodiment of the invention, the user context analyzer 210 isconfigured to receive user-related information from the one or morecomputing devices 110 of the user. In an embodiment, user-relatedinformation comprises any information related to a user of the one ormore computing devices 110, and more precisely, may comprise informationwhich relates to which computing devices 110 a user is currently usingor may be using at a later time, to information which relates to theuser and corresponding notifications, and to possible locations of auser. For example, user-related information may comprise informationderivable from the interaction of the user with any of theuser-interfaces of the computing devices 110, or information related toa user's schedule, such as information derivable from an electroniccalendar of the user that is running on any given computing device.

In another embodiment, the user-related information may comprise areaction of the user to one or more previously presented notifications.The presentation of a notification to one or more computing devices willbe discussed more fully below. In an exemplary embodiment of theinvention, the reaction of a user to a previously presentednotifications may comprise at least one of the following: whether or notpreviously presented notifications were blocked, whether or notpreviously presented notifications were opened, a length of timepreviously presented notifications remained opened, reactions topreviously presented notifications by the user on social media, and oneor more biometric parameters of the user as measured by any of thecomputing devices 110. However, the scope of illustrative embodiments isnot limited to the above-referenced reactions, but are contemplated tocover any type of measurable or detectable reaction of a user topreviously presented notifications.

In another embodiment, the biometric parameters may comprise one or moreof, or any combination of, heart rate measurement, blood pressuremeasurement, body surface temperature measurement, and pupil dilationmeasurement, or any type of biometric parameter that is an indicative ofa biological reaction of a user upon seeing or hearing a notificationpresented on a computing device.

In one embodiment, one or more of the computing devices 110 may comprisebiometric sensors coupled to the user for measurement of the biometricparameters associated with the user. As an exemplary embodiment, thecomputing device 110(1) may be a smart watch with correspondingbiometric sensors, such as a heat detection sensor and/or or vibrationdetector and/or an audio sensor, or any sensors for measuring bloodpressure and/or heart rate.

In an embodiment, the user context analyzer 210 is further configured todetermine the user context of the user based upon the receiveduser-related information. For example, user context of the user maycomprise, but is not limited to, location of the user, or possiblecurrent activities of the user (e.g., in a meeting, watching television,at a sporting event), or those computing devices that the user iscurrently using (e.g., devices to which a user is logged-on or devicesrunning user client services), or a preferences of the user to bepresented with notifications having various types of content based upon,for example, pre-set content preferences and/or the reaction of the userto notification content associated with previously presentednotifications.

In another embodiment, the user context analyzer 210 is furtherconfigured to store the determined user context of the user, and thenupdate the determined user context based on recently-receiveduser-related information from the computing devices 110 and the storeddetermined user context. In this manner, the notification system 105,via the user context analyzer 210, learns via the actions and/orreactions of the user to previously presented notifications, which maybe correlated with the classifications of these previously presentednotifications, thereby enriching the internal knowledge of thenotification system 105 and ultimately enabling even more appropriatechoices for presentations of notifications in the future.

In an embodiment of the invention, the decision manager 215 isconfigured to select one or more of the one or more computing devices110 of the user according to one or more modes of presentation, based ona classification of a received notification and a determined usercontext of the user. For example, based upon the classification of thenotification and the determined user context of the user, the decisionmanager 215 selects the most appropriate computing device and the mostappropriate mode of presentation of the selected computing device forpresenting the notification to the user.

By way of an exemplary embodiment, the notification may be an e-mailclassified as time-relaxed (i.e., not very urgent) from a friendconcerning sights seen on a recent vacation trip, the determined usercontext of the user is a laptop presentation at a business meeting, andprevious reactions of the user to his friends describing sights orshowing pictures of their vacations is not very positive, as based uponhis social media posts to previous notifications of a similar typeand/or based on user-interface interactions by the user to previousnotifications and/or based on biometric parameters of the user asmeasured by any of the computing devices upon reception of the previousnotifications of similar content. In this case, the decision manager 215may select a mobile device of the user, and decide to present thenotification to the mobile device after the meeting has ended, or inother words, postpone the presentation of the notification, according tothe user's electronic calendar, for example, as a SMS text message (asthe mode of presentation), or may instead decide to present thenotification as an audio message (as the mode of presentation) to thelaptop of the user in the evening, after the business day has concluded,for example, thereby further postponing the presentation of thenotification.

By way of another exemplary embodiment, the notification may be an SMStext message classified as a high priority from a family memberconcerning an emergency, the determined user context of the user is alaptop presentation at a business meeting, and previous reactions of theuser to family members describing urgent situations is known by thenotification system 105 to be very important to the user. In this case,the decision manager 215 may select the mobile device of the user anddecide to immediately present the notification to the mobile device, asa SMS text accompanied by a loud ring tone (as the mode ofpresentation).

In another embodiment, the decision manager 215 is configured todetermine a time or times at which to present the notification to aselected one or more computing devices 110 of the user according totheir respective selected modes of presentation, based on theclassification of the received notification and the determined usercontext of the user.

According to an embodiment of the invention, a mode of presentation maycomprise an audio mode, a visual mode, or a combination of audio andvisual modes. Additionally, the visual mode may include, but is notlimited to, notifications formatted as text messages, e-mail messages,chat messages, Skype messages, tweets, and pictures. The audio mode maycomprise notifications formatted as any type of audio message, as knownto those of skill in the art. A combination of audio and visual modesmay include notifications formatted as movie messages, such as governedby the MPEG standard, by way of example. Additionally, a mode ofpresentation may include an alarm mode and/or a vibration mode, or anytype of technique of alerting a user to the notification received fromthe notification system 105.

In another embodiment of the invention, the decision manager 215 may beconfigured to select one or more of the one or more computing devices110 of the user according to one or more modes of presentation, based onthe classification of the received notification, the determined usercontext of the user, and further based on one or more characteristics ofthe one or more computing devices 110. The decision manager 215 may alsobe configured to store the one or more characteristics of each of thecomputing devices 110.

In one embodiment, a characteristic of the computing device 110(1) mayinclude, but is not limited to, any combination of an audiencecharacteristic, an impact characteristic, a location characteristic, areceive mode characteristic and a priority characteristic. For example,an audience characteristic defines the type of audience or surroundingse.g., public, semi-private, or private, in which the device would mostlikely be operated. An impact characteristic, such as high, medium, orlow, may define how a device may impact the attention of the user. Forexample, a smart watch may have a high impact, while a laptop may have amedium impact. A location characteristic may be defined by GPScoordinates, for example. A receive mode characteristic may be one ormore of the different modes of presentation in which a device maypossibly be used for presenting a notification. A prioritycharacteristic may be defined as a ranking of a given computing device,with respect to other computing devices, as to the importance of such acomputing device in presenting a notification to a user.

For example, if the decision manager 215 has initially selected morethan one computing device with their respective modes of presentation,based on the classification of the notification, the determined usercontext of the user, and one or more device characteristics of each ofthe computing devices, except for the priority characteristics, then thedevice manager 215 may finally select the computing device with thehighest priority characteristic for presenting the notification to theuser.

The client services running on different computing devices may begoverned by different communication protocol standards, and in oneexemplary embodiment, the communication protocol governing a clientservice running on a selected computing device to which a receivednotification is to be presented may be different that the communicationprotocol governing a client service running on the computing device fromwhich the notification is received.

Thus, in another embodiment of the invention, the decision manager 215is further configured to change the communication protocol of a receivednotification to the communication protocols governing the clientservices of the selected computing devices before presenting thenotification to the selected computing devices.

FIG. 3 is a flowchart 300 of a method for presenting notifications toone or more computing devices of a user, according to an exemplaryembodiment of the invention.

In step 305, a notification analyzer 205 may receive a notification froma client service running on a computing device of one or more computingdevices 110 of a user, or receive a notification from a server 115, byintercepting the notification addressed to the client service. Theclient service may be configured, via a plug-in, for example, to receivea notification from a server 115 running, for example, server program,and then transmit the notification to the notification analyzer 205. Inanother embodiment, the client service may be configured, via a plug-in,for example, to store notifications received from the server 115, andthe notification analyzer 205 may monitor the client services running onthe one or more computing devices 110 for any stored notifications. Upondetection of stored notifications, the notification analyzer 205 mayinstruct the computing devices 110 to transmit the stored notificationsto the notification analyzer 205. In yet another embodiment, thenotification analyzer 205 may be configured, in part, as a filter tointercept a notification sent from the server 115 and addressed to aclient service running on a computing device.

In step 310, the notification analyzer 205 may, after receiving thenotification, classify the notification based on content associated withthe notification. In one embodiment, the notification analyzer 205classifies the notification based on address information associated withthe received notification and/or on message information of the receivednotification. Message information may be derived, for example, from ananalysis of the semantic content of the notification, and may result ina detection of key words or phrases, or meaningful patterns, orcorrelations between patterns, or a detection of the urgency of thenotification.

In step 315, a user context analyzer 210 may determine the user contextof the user based upon received user-related information. In oneembodiment, the user context analyzer may receive the user-relatedinformation from the one or more computing devices 110 of the user. Inanother embodiment, user-related information may comprise one or moreof, but not limited to, information derivable from the interaction ofthe user with any of the user-interfaces of the computing devices 110,information related to a user's schedule, or a reaction of the user toone or more previously presented notifications. Furthermore, the usercontext analyzer 210 may store the determined user context of the user,and then update the determined user context based on recently-receiveduser-related information from the computing devices 110 and the storeddetermined user context.

In step 320, a decision manager 215 may present the notification to oneor more of the one or more computing devices 110 of the user accordingto one or more modes of presentation, based on a classification of thereceived notification and a determined user context of the user, andoptionally further based on one or more characteristics of the one ormore computing devices 110. In one embodiment, the decision manager 215may determine a time or times at which to present the notification tothe selected one or more computing devices 110 of the user according totheir respective selected modes of presentation. In a furtherembodiment, the decision manager 215 may change the communicationprotocol of a received notification to the communication protocolsgoverning the client services of the selected computing devices beforepresenting the notification to the selected computing devices.

The notification system 105 may be implemented as any combination ofsoftware, hardware and/or firmware, and may be implemented as a computersystem such as a server, or as a component of any conventional networkserver or any other component of a network, e.g., a router. The computersystem may include, but are not limited to, one or more processors orprocessing units, a storage system, a memory unit, and a bus thatcouples various system components including memory unit to processor.Storage system may include for example a hard disk drive (HDD). Memoryunit may include computer system readable media in the form of volatilememory, such as random access memory (RAM) and/or cache memory.

Computer system typically includes a variety of computer system readablemedia. Such media may be any available media that is accessible bycomputer system, and it includes both volatile and non-volatile media,removable and non-removable media.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

1. A system for presenting notifications to one or more computingdevices of a user, the system comprising: a bus; a memory connected tothe bus, wherein the memory stores program instructions; and a processorconnected to the bus, wherein the processor executes the programinstructions to: receive, by a notification service running on acomputing device of the one or more computing devices of the user, anotification addressed to a client service running on the computingdevice of the one or more computing devices of the user; classify thenotification based on content associated with the notification; receiveuser-related information received from the one or more computing devicesof the user and determine user context of the user; select one or moreof the one or more computing devices of the user according to one ormore modes of presentation based on a classification of saidnotification and a determined user context of said user; and present thenotification to the selected one or more of the one or more computingdevices of the user according to the one or more modes of presentation.2. The system of claim 1, said user-related information comprising areaction of the user to at least one previously received and presentednotification, said reaction of the user comprising at least one of:whether the notification was blocked, whether the notification wasopened, a length of time the notification was opened, a reaction to thenotification by the user on social media, and one or more biometricparameters of the user as measured by the one or more of the one or morecomputing devices.
 3. The system of claim 1, wherein the notification isclassified based on address information of the client service that isassociated with the notification.
 4. The system of claim 1, saiduser-related information comprising an interaction of the user with oneor more user interfaces of the one or more computing devices andcalendar information related to the user.
 5. The system of claim 1,wherein the one or more computing devices are a plurality of computingdevices, and said present the notification according to the one or moremodes of presentation is further based on one or more characteristics ofthe plurality of computing devices.
 6. The system of claim 5, whereinthe processor executes the program instructions to: select a particularone of the plurality of computing devices based on the classification ofthe notification and the user context.
 7. The system of claim 5, saidone or more characteristics comprising a priority characteristic as toan importance of presenting the notification to the user.
 8. The systemof claim 7, further comprising: selecting a given one of the pluralityof computing devices to form the selected one or more of the one or morecomputing devices, wherein said present the notification to the one ormore of the one or more computing devices is further performed accordingto priority characteristics of the plurality of computing devices suchthat the notification is presented to the given one of the plurality ofcomputing devices having a highest priority characteristic among theplurality of computing devices.
 9. The system of claim 1, said clientservice comprising one of a client messaging service or a clientelectronic mail service running on the computing device of the one ormore computing devices of the user, wherein the client service storesthe notification, and wherein the processor executes the programinstructions to: instruct the computing device to transmit the storednotification responsive to detecting the stored notification.
 10. Thesystem of claim 1, said receive said notification addressed to saidclient service running on said computing device further comprisingmonitor said client service running on said computing device for anincoming notification received from a server.
 11. The system of claim 1,said content comprising address information of the notification andmessage information of the notification.
 12. The system of claim 1,wherein one or more client services running on the one or more of theone or more computing devices are associated with differentcommunication protocols than a communication protocol associated withthe client service running on the computing device, wherein theprocessor executes the program instructions to: change the communicationprotocol of the notification before said presenting the notification tothe one or more of the one or more computing devices.
 13. The system ofclaim 1, wherein the processor executes the program instructions to:store the determined user context; and update the determined usercontext based on recently-received user-related information from the oneor more computing devices and the stored determined user context. 14.The system of claim 1, said present the notification to the one or moreof the one or more computing devices of the user according to the one ormore modes of presentation further comprising postpone the presentationof the notification based on said classifying of the notification andsaid determining of the user context of the user.
 15. The system ofclaim 1, wherein the processor executes the program instructions to:block the notification to one or more of the one or more computingdevices of the user based on said classifying of the notification andsaid determining of the user context of the user.
 16. A computer programproduct for presenting notifications to one or more computing devices ofa user, the computer program product comprising a computer readablestorage medium having program instructions embodied therewith, theprogram instructions executable by a processor to: receive anotification addressed to a client service running on a computing deviceof the one or more computing devices of the user; classify thenotification based on content associated with the notification;determine user context of the user based on user-related informationreceived from the one or more computing devices, wherein theuser-related information comprises a reaction of the user to at leastone previously received and presented notification; select a particularone of the plurality of computing devices of the user based on theclassification of the notification and the user context; and present thenotification to the particular one of the plurality of computing devicesof the user according to one or more modes of presentation based on theclassification of the notification, one or more characteristics of eachof the one or more computing devices, and a determined user context ofthe user.
 17. The computer program product of claim 16, saiduser-related information comprising a reaction of the user to at leastone previously received and presented notification, said reaction of theuser comprising at least one of: whether the notification was blocked,whether the notification was opened, a length of time the notificationwas opened, a reaction to the notification by the user on social media,and one or more biometric parameters of the user as measured by the oneor more of the one or more computing devices.
 18. The computer programproduct of claim 16, wherein the notification is classified based onaddress information of the client service that is associated with thenotification.
 19. The computer program product of claim 16, saiduser-related information comprising an interaction of the user with oneor more user interfaces of the one or more computing devices andcalendar information related to the user.
 20. The computer programproduct of claim 16, said receive said notification addressed to saidclient service running on said computing device further comprisingmonitor said client service running on said computing device for anincoming notification received from a server.